Soru & Cevap

Swipe ImageView

08.09.2014 - 11:26

Merhabalar;

Uygulamamda kullanacağım bir SwipeViewpager uygulaması indirdim. Uygulama açıldığı zaman ImageView in ortalı olmasını istiyorum yapamadım ImageView i for içinde kontrol etmiş set.gravitiy denedim olmadı yardımcı olabilirseniz sevinirim.

 

Resim de gördüğünüz gibi olmasını istemiyorum ortadan başlamasını istiyorum. Teşekkürler

Kodlar;

package com.androidbegin.viewpagertutorial;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

public class MainActivity extends Activity 
{
    // Declare Variables
    ViewPager viewPager;
    PagerAdapter adapter;    
    int[] flag;
    LinearLayout llDots;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        // Get the view from viewpager_main.xml
        setContentView(R.layout.viewpager_main);
        
        flag = new int[] { R.drawable.abc, R.drawable.xyz,
                R.drawable.abc, R.drawable.xyz,
                R.drawable.abc, R.drawable.xyz, R.drawable.abc,
                R.drawable.xyz, R.drawable.abc, R.drawable.xyz };

        llDots=(LinearLayout) findViewById(R.id.llDots);        
        viewPager = (ViewPager) findViewById(R.id.pager);
        
        adapter = new ViewPagerAdapter(this, flag);
        viewPager.setAdapter(adapter);    
        
        for (int i = 0; i < adapter.getCount(); i++)
        {
            ImageButton imgDot = new ImageButton(this);
            imgDot.setTag(i);
            imgDot.setImageResource(R.drawable.dot_selector);
            imgDot.setBackgroundResource(0);
            imgDot.setPadding(5, 5, 5, 5);
            LayoutParams params = new LayoutParams(20, 20);
            imgDot.setLayoutParams(params);
            if(i == 0)
                imgDot.setSelected(true);
        
            llDots.addView(imgDot);
        }
        
        viewPager.setOnPageChangeListener(new OnPageChangeListener()
        {
            
            @Override
            public void onPageSelected(int pos)
            {
                Log.e("", "Page Selected is ===> " + pos);
                for (int i = 0; i < adapter.getCount(); i++)
                {
                    if(i != pos)
                    {
                        ((ImageView)llDots.findViewWithTag(i)).setSelected(false);
                    }
                }
                ((ImageView)llDots.findViewWithTag(pos)).setSelected(true);
            }
            
            @Override
            public void onPageScrolled(int pos, float arg1, int arg2)
            {
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0)
            {
                
            }
        });
        //int margin = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20*2,     getResources().getDisplayMetrics());
        //viewPager.setPageMargin(-20);
        

    }

    
}

6 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user engin.yolal
engin.yolal
09.09.2014 - 09:17

onCrate içine şöyle bir basit yapı kurarak,

[code]public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
    ImagePagerAdapter adapter = new ImagePagerAdapter();
    viewPager.setAdapter(adapter);
  }[/code]

Adapter'a da şöyle oluştursanız;

 

 

[code]private class ImagePagerAdapter extends PagerAdapter {
    private int[] mImages = new int[] {
        R.drawable.ic_launcher,
        R.drawable.ic_launcher,
        R.drawable.ic_launcher,
        R.drawable.ic_launcher
    };

    @Override
    public int getCount() {
      return mImages.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
      return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
      Context context = MainActivity.this;
      ImageView imageView = new ImageView(context);
      int padding = context.getResources().getDimensionPixelSize(
          R.dimen.padding_medium);
      imageView.setPadding(padding, padding, padding, padding);
      imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
      imageView.setImageResource(mImages[position]);
      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
      ((ViewPager) container).removeView((ImageView) object);
    }
  }[/code]

Sorun Çözülebilir diye düşünüyorum.

Mücahit ERDOĞAN
09.09.2014 - 01:29
Çok teşekkür ederim Engin.